<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <ul>
    <li>blue</li>
    <li>green</li>
    <li>red</li>
    <li>black</li>
    <li>white</li>
  </ul>


  <script>
    /* 获得当前索引 */
    let lis = document.querySelectorAll('li');
    for (let i = 0; i < lis.length; i++) {
      //利用for循环创建了4个立即执行函数
      (function(i) {
        // console.log(i);
        lis[i].onclick = function() {
          console.log(i);
        }
      })(i); //将循环参数给立即执行函数
    };
    //但是这样用会导致立即执行函数中的变量一直不销毁 导致内存泄漏

    /* 三秒钟之后打印所有li元素内容 */
    for (let i = 0; i < lis.length; i++) {

      (function(i) {
        setTimeout(function() {
          console.log(lis[i].innerHTML);
        }, 3000)
      })(i)

    }
  </script>
</body>

</html>